package cn.piggy.model.answers;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

public class AiRequestBody {
    private List<Message> messages;
    private List<Function> functions;
    private float temperature = 0.8f;
    @JsonProperty("top_p")
    private float topP = 0.8f;
    @JsonProperty("penalty_score")
    private float penaltyScore = 1.0f;
    private boolean stream;
    private String system;
    private List<String> stop;
    @JsonProperty("disable_search")
    private boolean disableSearch = false;
    @JsonProperty("enable_citation")
    private boolean enableCitation = false;
    @JsonProperty("response_format")
    private String responseFormat;
    @JsonProperty("user_id")
    private String userId;
    @JsonProperty("tool_choice")
    private ToolChoice toolChoice;

    public List<Message> getMessages() {
        return messages;
    }

    public void setMessages(List<Message> messages) {
        this.messages = messages;
    }

    public List<Function> getFunctions() {
        return functions;
    }

    public void setFunctions(List<Function> functions) {
        this.functions = functions;
    }

    public float getTemperature() {
        return temperature;
    }

    public void setTemperature(float temperature) {
        this.temperature = temperature;
    }

    public float getTopP() {
        return topP;
    }

    public void setTopP(float topP) {
        this.topP = topP;
    }

    public float getPenaltyScore() {
        return penaltyScore;
    }

    public void setPenaltyScore(float penaltyScore) {
        this.penaltyScore = penaltyScore;
    }

    public boolean isStream() {
        return stream;
    }

    public void setStream(boolean stream) {
        this.stream = stream;
    }

    public String getSystem() {
        return system;
    }

    public void setSystem(String system) {
        this.system = system;
    }

    public List<String> getStop() {
        return stop;
    }

    public void setStop(List<String> stop) {
        this.stop = stop;
    }

    public boolean isDisableSearch() {
        return disableSearch;
    }

    public void setDisableSearch(boolean disableSearch) {
        this.disableSearch = disableSearch;
    }

    public boolean isEnableCitation() {
        return enableCitation;
    }

    public void setEnableCitation(boolean enableCitation) {
        this.enableCitation = enableCitation;
    }

    public String getResponseFormat() {
        return responseFormat;
    }

    public void setResponseFormat(String responseFormat) {
        this.responseFormat = responseFormat;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public ToolChoice getToolChoice() {
        return toolChoice;
    }

    public void setToolChoice(ToolChoice toolChoice) {
        this.toolChoice = toolChoice;
    }
}
